iT邦幫忙

0

Day 12, Coursera-Algorithm toolbox- Big O 時間複雜度

  • 分享至 

  • xImage
  •  

Big O 時間複雜度

一個用來思考,這個演算法能否快狠準計算完成的好工具,有別於剛開始學程式的人,先能做出程式來用,就能歡天喜地,開心好幾天,知曉Big O之後,世界就不再那麼單純了,而那純粹的快樂也漸漸離我們遠去... ...,就好像離開童年的單純歲月一樣,你,如果可以,還會想要回到小時候嗎? 當然,不要。大人有選擇生活的能力,小孩才沒有。
時間複雜度是個粗估運作時間的好方法,為甚麼說粗估呢?

舉個例子,如果你有一個公式:

100n^3+2n+2
我們會說,該公式的時間複雜度是O(n^3)

如果是

99999999999n+1
我們會說,該公式的時間複雜度是O(n)
藉由時間複雜度,我們能忽略電腦計算性能、記憶體配置大小等問題,就純粹從演算法公式來估算、比較花費時間,當輸入數字變的龐大時,在同單位時間數下,時間複雜度顯現的影響就更加震撼。
https://ithelp.ithome.com.tw/upload/images/20220615/20149573Xr2k9XdQlP.png
圖片來源自維基百科
舉我從Day9~Day10之間的公式,兩者都是找出最大相乘數,然而一個會造成time limit exceed,一個卻依然能快速算出正確數值,這就歸功於從時間複雜度角度的思考,若使用雙迴圈,會造成時間複雜度為O(n^2),若只使用單迴圈,就是O(n)。很明顯的,O(n)所花費的時間較少,我們就談到這。


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言